package dataview;

import java.awt.Color;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.Phrase;

public class Paragrafo extends Parte {
	static final int DEFAULT_SIZE = 10;
	static final String DEFAULT_FONTFAMILY = FontFactory.TIMES_ROMAN;
	static final Color DEFAULT_COLOR = Color.BLACK;
	static final int TITLE_SIZE = 18;
	
	private String contenuto;
	private int size;
	private boolean italic;
	private boolean bold;
	private Color colore;
	
	public Paragrafo() {
		contenuto = "";
		size = DEFAULT_SIZE;
		italic = false;
		bold = false;
		colore = DEFAULT_COLOR;
	}
	
	public Paragrafo(String contenuto) {
		this();
		this.contenuto = contenuto;
	}
	
	public void aggiungiRiga(String label, String contenuto) {
		this.contenuto += "\n" + label.toUpperCase() + ": " + contenuto;
	}
	
	public void setContenuto(String contenuto) {
		this.contenuto = contenuto;
	}
	
	public void setSize(int size) {
		this.size = size;
	}
	
	public void setItalic(boolean italic) {
		this.italic = italic;
	}
	
	public void setBold(boolean bold) {
		this.bold = bold;
	}
	
	public void setColore (Color colore) {
		this.colore = colore;
	}
	
	public Paragrafo(String contenuto, int size, boolean italic, boolean bold) {
		this();
		this.contenuto = contenuto;
		this.size = size;
		this.italic = italic;
		this.bold = bold;
	}
	
	public Paragrafo(String contenuto, int size, boolean italic, boolean bold, Color colore) {
		super();
		this.contenuto = contenuto;
		this.size = size;
		this.italic = italic;
		this.bold = bold;
		this.colore = colore;
	}
	
	public String getContenuto() {
		return contenuto;
	}
	
	public int getSize() {
		return size;
	}
	
	public boolean isItalic() {
		return italic;
	}
	
	public boolean isBold() {
		return bold;
	}
	
	public Color getColore() {
		return colore;
	}
	
	public Element getReportElement() {
		Font font = FontFactory.getFont(DEFAULT_FONTFAMILY, (float)size, colore);
		font.setStyle(Font.NORMAL);
		if (isItalic()) font.setStyle(Font.ITALIC);
		if (isBold()) font.setStyle(Font.BOLD);
		Phrase elemento = new Phrase(contenuto, font);
		return elemento;
	}
}
